3b7ea1f915c59ae74400358ea04a8933607eecbd,codeInsight/impl/com/intellij/codeInsight/completion/SkipAbstractExpectedTypeWeigher.java,SkipAbstractExpectedTypeWeigher,getSkippingStatus,#LookupElement#CompletionLocation#,30

Before Change


    if (infos != null) {
      final PsiType type = JavaPsiFacade.getInstance(psiClass.getProject()).getElementFactory().createType(psiClass);
      for (final ExpectedTypeInfo info : infos) {
        final PsiType infoType = info.getType().getDeepComponentType();
        final PsiType defaultType = info.getDefaultType().getDeepComponentType();
        //todo raw
        if (!defaultType.equals(infoType) && infoType.isAssignableFrom(type)) {

After Change


    if (infos != null) {
      final PsiType type = JavaPsiFacade.getInstance(psiClass.getProject()).getElementFactory().createType(psiClass);
      for (final ExpectedTypeInfo info : infos) {
        final PsiType infoType = TypeConversionUtil.erasure(info.getType().getDeepComponentType());
        final PsiType defaultType = TypeConversionUtil.erasure(info.getDefaultType().getDeepComponentType());
        if (!defaultType.equals(infoType) && infoType.isAssignableFrom(type)) {
          if (!defaultType.isAssignableFrom(type)) return Result.NON_DEFAULT;